//
//  CSDKConnector.m
//  onebuycheckstand
//
//  Created by xu yao on 2021/3/2.
//

#import "USDKConnector.h"
#import <objc/runtime.h>
#import <objc/message.h>
#import "UWeChat.h"
#import "UAlipay.h"
#import "UGZRCpay.h"

@interface USDKConnector ()

@end

static USDKConnector *currentHelper = nil;
@implementation USDKConnector

// 创建单例
+ (USDKConnector *)currentHelper {
    if (currentHelper == nil)
        currentHelper = [[USDKConnector alloc] init];
    
    return currentHelper;
}

- (instancetype)init {
    if (self = [super init]) {
        
    }
    return self;
}

/**
 *  链接微信API已供SDK可以正常使用微信的支付功能
 *
 *  @param wxApiClass 微信SDK中的类型，应先导入libWXApi.a，再传入[WXApi class]到此参数。注：此参数不能为nil，否则会导致支付无法正常使用
 *  @param delegate 对于获取微信回复或请求时传入该委托对象。该对象必须实现WXApiDelegate协议中的方法。
 */
+ (void)connectWeChat:(Class)wxApiClass delegate:(id)delegate {
    if (wxApiClass != NSClassFromString(@"WXApi")) {
        return;
    }
    [UWeChat currentHelper].wxApiClass = wxApiClass;
    [UWeChat currentHelper].delegate = delegate;
}

/**
 *  链接支付宝API以供SDK可以正常使用支付宝进行支付功能
 *
 *  @param apOpenApiClass 支付宝SDK中的类型，应先导入libAPOpenSdk.a，再将[APOpenApi class]传入到此参数。注：此参数不能为nil，否则会导致无法正常分享。
 */
+ (void)connectAliPay:(Class)apOpenApiClass {
    if (apOpenApiClass != NSClassFromString(@"AlipaySDK")) {
        return;
    }
    [UAlipay currentHelper].alipayOpenApiClass = apOpenApiClass;
}
/**
 * 链接黔农云SDK以供SDK可以正常使用黔农云支付功能
 * @param GZRCpayClass 黔农云SDK的类型，应先导入GZRCpaySDK.framework，再将[GZRCpaySDK class]传入到此参数，注：此参数不能为nil，否则会导致无法正常支付。
 */
+ (void)connectGZRCpay:(Class)GZRCpayClass {
    if (GZRCpayClass != NSClassFromString(@"GZRCpaySDK")) {
        return;
    }
    [UGZRCpay currentHelper].gzrcpayClass = GZRCpayClass;
}
@end
